package com.yf.repo.modules.repo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yf.base.api.api.dto.PagingReqDTO;
import com.yf.repo.modules.qu.dto.QuDTO;
import com.yf.repo.modules.qu.dto.request.QuQueryReqDTO;
import com.yf.repo.modules.repo.dto.ext.RepoDetailDTO;
import com.yf.repo.modules.repo.dto.request.RepoReqDTO;
import com.yf.repo.modules.repo.dto.response.ChapterGroupDTO;
import com.yf.repo.modules.repo.dto.response.TypeGroupDTO;
import com.yf.repo.modules.repo.entity.Repo;

import java.util.List;
import java.util.Map;

/**
* <p>
* 题库业务类
* </p>
*
* @author 聪明笨狗
* @since 2020-05-25 13:23
*/
public interface RepoService extends IService<Repo> {

    /**
    * 分页查询数据
    * @param reqDTO
    * @return
    */
    IPage<RepoDetailDTO> paging(PagingReqDTO<RepoReqDTO> reqDTO);


    /**
     * 学员端列表
     * @param reqDTO
     * @return
     */
    IPage<RepoDetailDTO> userPaging(PagingReqDTO<RepoReqDTO> reqDTO);


    /**
     * 保存
     * @param reqDTO
     */
    void save(RepoDetailDTO reqDTO);

    /**
     * 查找详情
     * @param id
     * @return
     */
    RepoDetailDTO detail(String id);


    /**
     * 根据题型统计题目数量
     * @param reqDTO
     * @return
     */
    List<TypeGroupDTO> findTypeGroup(QuDTO reqDTO);

    /**
     * 查找章节分组
     * @param query
     * @return
     */
    List<ChapterGroupDTO> findChapterGroup(QuQueryReqDTO query);


    /**
     * 批量删除
     * @param ids
     */
    void delete(List<String> ids);

    /**
     * 保存返回Id
     * @param reqDTO
     * @return
     */
    Map<String,Object> saveById(RepoDetailDTO reqDTO);
}
